package almacenes.modelo.dao;


import java.util.Date;
import java.util.List;

import almacenes.modelo.dto.GuiaAsignadaDto;
import almacenes.modelo.dto.GuiaNoConformeDto;
import almacenes.modelo.dto.RespuestaDto;
import almacenes.modelo.entidad.GuiaRemision;
import almacenes.modelo.excepcion.ExcepcionGeneral;
import org.hibernate.Session;
public interface LoteGuiaDao {
	public List<GuiaAsignadaDto> buscarGuiasAsignadas(byte iIdTipoProveedor,
			short iIdProveedor, byte iIdEstadoLote, String sSerieGuia,
			String sNumGuia, Date dtFecRegIni, Date dtFecRegFin,Session sesion)
			throws ExcepcionGeneral;

	public List<GuiaNoConformeDto> buscarGuiasNoConformes(long idLoteGuia,Session sesion)
			throws ExcepcionGeneral;

	public RespuestaDto guardarLote(short iIdProveedor, Integer integer,
			String sSerieGuia, int iNumGuiaIni, int iNumGuiaFin,
			Integer integer2, String sUsuReg,Session sesion) throws ExcepcionGeneral;

	public GuiaRemision buscarGuia(String sNumGuia, String sSerieGuia,Session sesion)
			throws ExcepcionGeneral;

	public List<GuiaRemision> buscarGuiasAsociadas(long iIdLoteGuia,
			byte iIdEstadoGuia,Session sesion) throws ExcepcionGeneral;

	public List<GuiaRemision> buscarGuiasAsociadas(long iIdLoteGuia,
			String sSerieGuia, String sNumGuiaIni, String sNumGuiaFin,
			byte iIdEstadoGuia,Session sesion) throws ExcepcionGeneral;

	public RespuestaDto editarGuiasANoConformes(long iIdLoteGuia,
			 String sSerieGuia, int iNumGuiaIni,
			int iNumGuiaFin,String sObservacion,  String sUsuAct,Session sesion) throws ExcepcionGeneral;
	
	public RespuestaDto cambiarEstadoGuia(long iIdGuia, Integer iIdCodigoRegularizar,String sUsuAct,
			Session sesion);
	
	public RespuestaDto regularizarGuia(long iIdLoteGuia,long iIdGuia,String sObservacion,String sUsuAct,
			Session sesion);
}
